@echo off
chcp 65001 >nul
title 添加游戏化功能
color 0E

echo ========================================
echo   🎮 添加游戏化功能
echo ========================================
echo.
echo 本脚本将添加以下功能：
echo   🏆 成就系统（14个预设成就）
echo   ⭐ 等级体系（6个等级）
echo   📊 经验值和积分系统
echo   🔥 连续记账奖励
echo   🏅 等级排行榜
echo.
echo ⚠️ 注意：需要MySQL数据库正常运行
echo.
pause

echo.
echo [1/6] 备份现有文件...
if not exist "backup" mkdir backup
copy "backend\routes\stats.js" "backup\stats.js.bak" >nul 2>&1
copy "src\index.html" "backup\index.html.bak" >nul 2>&1
echo ✅ 备份完成
echo.

echo [2/6] 检查MySQL连接...
echo 请输入MySQL密码（按回车使用默认：123456）:
set /p DB_PASSWORD=
if "%DB_PASSWORD%"=="" set DB_PASSWORD=123456

mysql -u root -p%DB_PASSWORD% -e "SELECT 1" >nul 2>&1
if %ERRORLEVEL% NEQ 0 (
    echo ❌ MySQL连接失败，请检查：
    echo    1. MySQL是否正在运行
    echo    2. 密码是否正确
    pause
    exit /b 1
)
echo ✅ MySQL连接成功
echo.

echo [3/6] 创建数据库表...
mysql -u root -p%DB_PASSWORD% budget_system < backend\database\add_gamification.sql
if %ERRORLEVEL% EQU 0 (
    echo ✅ 数据库表创建成功
) else (
    echo ⚠️ 数据库表创建可能有问题，但将继续...
)
echo.

echo [4/6] 检查现有用户...
echo 正在为现有用户初始化等级数据...
mysql -u root -p%DB_PASSWORD% budget_system -e "INSERT IGNORE INTO user_levels (user_id, level, exp, total_points) SELECT user_id, 1, 0, 0 FROM users WHERE user_id NOT IN (SELECT user_id FROM user_levels);"
echo ✅ 现有用户数据已初始化
echo.

echo [5/6] 重启后端服务...
echo 正在停止旧进程...
taskkill /F /IM node.exe >nul 2>&1
timeout /t 2 >nul

echo 正在启动后端...
start "预算系统-后端" cmd /k "cd backend && npm run dev"
timeout /t 3 >nul
echo ✅ 后端已重启
echo.

echo [6/6] 验证功能...
timeout /t 2 >nul
curl -s http://localhost:3000/health >nul 2>&1
if %ERRORLEVEL% EQU 0 (
    echo ✅ 后端服务运行正常
) else (
    echo ⚠️ 后端服务可能未成功启动，请检查后端窗口
)
echo.

echo ========================================
echo   ✅ 游戏化功能添加完成！
echo ========================================
echo.
echo 🎮 新增功能：
echo.
echo 【成就系统】
echo   ✓ 14个预设成就
echo   ✓ 自动检测解锁
echo   ✓ 成就解锁动画
echo   ✓ 积分奖励
echo.
echo 【等级体系】  
echo   ✓ 6个等级：新手→学徒→行家→大师→传奇→宗师
echo   ✓ 经验值系统
echo   ✓ 升级动画
echo   ✓ 连续记账奖励
echo.
echo 【排行榜】
echo   ✓ 等级排行
echo   ✓ 积分排行
echo.
echo ========================================
echo.
echo 📝 使用方法：
echo   1. 刷新浏览器（按 Ctrl+F5）
echo   2. 登录系统
echo   3. 查看顶部导航栏的等级徽章
echo   4. 滚动到创新功能区域查看详细信息
echo   5. 添加记录自动获得经验和检查成就
echo.
echo 🎯 成就列表：
echo   🎉 初次记账 - 添加第一条记录（10分）
echo   📝 记账新手 - 累计10次（20分）
echo   📊 记账达人 - 累计50次（50分）
echo   💎 记账专家 - 累计100次（100分）
echo   👑 记账传奇 - 累计365次（500分）
echo   🔥 坚持一周 - 连续7天（30分）
echo   💪 坚持一月 - 连续30天（100分）
echo   🏆 百日坚持 - 连续100天（300分）
echo   💰 节省达人 - 支出少于上月（50分）
echo   🌟 节省大师 - 连续3月递减（150分）
echo   🎯 分类入门 - 使用5种分类（25分）
echo   🗺️ 分类大师 - 使用全部分类（100分）
echo   💎 精打细算 - 控制在预算内（50分）
echo   ⭐ 预算专家 - 连续3月控制预算（200分）
echo.
echo ⭐ 等级体系：
echo   Lv.1 🌱 新手      （0 EXP）
echo   Lv.2 📝 学徒      （100 EXP）
echo   Lv.3 💼 行家      （300 EXP）
echo   Lv.4 🎓 大师      （800 EXP）
echo   Lv.5 👑 传奇      （2000 EXP）
echo   Lv.6 ⚡ 宗师      （5000 EXP）
echo.
echo 💡 每次记账获得 +10 EXP
echo.
echo ========================================
echo.
echo 如需帮助，请查看：游戏化功能说明.md
echo.
pause 